package jzOffer;



import java.util.Stack;

//  Definition for singly-linked list.
   class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
  }

public class Num06 {
       //栈
       public int[] reversePrint(ListNode head) {
           Stack<Integer> stack=new Stack<>();
           while(head!=null){
               stack.push(head.val);
               head=head.next;
           }
           int size=stack.size();
           int[] arr=new int[size];
           for(int i=0;i<size;i++){
               arr[i]=stack.pop();
           }
           return arr;
       }


       //反转+数组
//    public int[] reversePrint(ListNode head) {
//        ListNode nHead=reverse(head);
//
//        int len=0;
//        List<Integer> list=new ArrayList<>();
//        while(nHead!=null){
//            len++;
//            list.add(nHead.val);
//            nHead=nHead.next;
//        }
//        int[] arr=new int[len];
//        for(int i=0;i<list.size();i++){
//            arr[i]=list.get(i);
//        }
//        return arr;
//    }
//    private ListNode reverse(ListNode head){
//        if(head==null || head.next==null) return head;
//        ListNode secHead=head.next;
//        ListNode newHead=reverse(secHead);
//        secHead.next=head;
//        head.next=null;
//        return newHead;
//    }
}
